var opcall = null;
// var msg_div = null;
var stat = null;
init();
//获取URL参数
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) { return pair[1]; }
  }
  return (false);
};

function init() {
  var page = Forguncy.Page;
  var user = page.getCell("user").getValue();
  var password = page.getCell("password").getValue();
  var login = page.getCell("login");
  // var logout = page.getCell("logout");
  // var cuser = page.getCell("cuser");
  // var hold = page.getCell("hold");
  // var unhold = page.getCell("unhold");
  // var transfer = page.getCell("transfer");
  var dia_num = page.getCell("dia_num");
  // var hangup = page.getCell("hangup");
  // var monitor = page.getCell("monitor");
  // var breakin = page.getCell("breakin");
  var checkin = page.getCell("checkin");
  var dia_btn = page.getCell("dia_btn");
  var caller = page.getCell("caller");
  var phone = page.getCell("phone");
  var uuid = page.getCell("uuid");
  login.setValue("登录");
  checkin.setValue("示闲");
  // hold.setValue("保持");
  // hold.disable();
  // unhold.disable();
  // transfer.disable();
  // hangup.disable();
  // monitor.disable();
  // breakin.disable();
  checkin.disable();
  dia_btn.disable();
  caller.hide();
  //将IP和账号密码替换为实际的IP和账号、密码http://112.230.201.171:4963/
   var cti_config = { debug: true, baseurl: "http://xl.cacen2009.com:8080/atstar/client.php", user: user, password: password };
//   var cti_config = { debug: true, baseurl: "http://192.168.8.90/atstar/client.php", user: user, password: password };
  opcall = new call(cti_config);
  // msg_div = page.getCell("msg");
  stat = page.getCell("stat");
  //登录事件
  opcall.lib.event("login").subscribe(function () {
    // log("坐席登陆成功");
    // cuser.setValue(user)
    stat.setValue("坐席在线");
    login.setValue("退出");
    // logout.enable();
    checkin.enable();
    dia_num.enable();
    dia_btn.enable();
  });
  // 登出事件
  opcall.lib.event("logout").subscribe(function () {
    // log("坐席退出成功");
    // cuser.setValue("空");
    stat.setValue("未登录");
    login.setValue("登录");
    // logout.disable();
    // hold.disable();
    // unhold.disable();
    // transfer.disable();
    hangup.disable();
    monitor.disable();
    breakin.disable();
    checkin.disable();
    dia_num.disable();
  });

  // 登录失败事件
  opcall.lib.event("login_fail").subscribe(function (data) {
    // log(data.message);
    // cuser.setValue("空");
    stat.setValue(data.message);
    // login.enable();
    // logout.disable();
  });

  //空闲
  opcall.lib.event("idle").subscribe(function () {
    stat.setValue("空闲");
  });
  //振铃
  opcall.lib.event("ring").subscribe(function (ext) {

    stat.setValue("振铃");
    caller.setValue(ext.peer)
    phone.setValue(ext.peer)
    // window.open("http://47.104.106.97/来电详情页?phone=" + ext.peer);


  });
  //忙线
  opcall.lib.event("busy").subscribe(function (ext) {
    stat.setValue("忙线");
    let U_ID = 0;
    // window.open("http://60.216.53.218:4966/来电弹屏?phone=" + ext.peer);
    // log("电话接通了[或者此处完成弹屏]：" + ext.peer);
    // hold.enable();
    // transfer.enable();
    // hangup.enable();
    // dia_num.disable();
    // Forguncy.addTableData("用户档案表",
    // {来电手机号:phone},
    // U_ID = callback.ID
    //  )
    // Forguncy.addTableData("来电详情表",
    // {
    //     用户档案表_ID:U_ID,
    //     uuid:ext.cdr_uuid
    // })
    uuid.setValue(ext.cdr_uuid)
  });
  //坐席签入
  opcall.lib.event("available").subscribe(function (ext) {
    opcall.lib.log("receive available");
    if (opcall.cfg.state.call_state == 'idle') {
      stat.setValue("空闲");
    };
    checkin.setValue("示忙");
  });
  //坐席签出消息
  opcall.lib.event("unavailable").subscribe(function (ext) {
    opcall.lib.log("receive unavailable:" + ext.state_cause_description);
    if (opcall.cfg.state.call_state == 'idle') {
      var desc = ext.state_cause_description ? ext.state_cause_description : (ext.state_cause == "pause" ? "话后" : "小休")
      stat.setValue(desc);
    };
    checkin.setValue("示闲");
    stat.setValue("离线");
  });


  // 处理坐席保持事件
  // opcall.lib.event("hold").subscribe(function (ext) {
  //   opcall.lib.log("receive hold");
  //   stat.setValue("电话保持");
  //   hold.setValue("取消保持");
  // });

  //处理分机离线事件
  opcall.lib.event("offline").subscribe(function (ext) {
    opcall.lib.log("receive offline");
    stat.setValue("分机离线");
    // hold.disable();
    // unhold.disable();
    // transfer.disable();
    // hangup.disable();
    // monitor.disable();
    // breakin.disable();
    checkin.disable();
    dia_num.disable();
  });
};

//日志消息
//function log(msg){
//msg_div.setValue(getNowFormatDate() + msg + "<br>");
//console.log(msg);
//};

// 坐席登录
function login() {
  init()
  try {
    opcall.lib.startup();
  }
  catch (err) {
    alert(err);
  }
};

//坐席登出
function logout() {
  opcall.lib.stop();
};
// 坐席保持
// function hold() {
//   opcall.cli.hold('-', null, function (data) {
//     log(data.message);
//   });
// };

// 取消保持
// function unhold() {
//   opcall.cli.unhold('-', null, function (data) {
//     log(data.message);
//   });
// };

// 挂机
// function hangup() {
//   opcall.cli.hangup('-', null, function (data) {
//     //log(data.message);
//   });
// };

//转接
// function transfer() {
//   //46012是您要转接的号码
//   var trfnum = prompt('转接号码：')
//   opcall.cli.transfer('-', trfnum, function (data) {
//     alert(data.message);
//   });
// };
//监听
// function spy() {
//   //46012是被监听者分机号码
//   opcall.cli.spy('-', "46012", function (data) {
//     alert(data.message);
//   });
// };

//强插
// function breakin() {
//   //46012是被强插者分机号码
//   opcall.cli.breakin('-', "46012", function (data) {
//     alert(data.message); z
//   });
// };

//拨号
function dial(num) {
  //点击拨号
  opcall.cli.dial('-', num, function (data) {
    //alert(data.message);
  });
};

// 签入处理
function agent_state(status) {

  opcall.cli.adv_agent_status('-', status, '', function (data) {
    // alert(data.message);
    // console.log(data);
  });
};
function answer(){
    opcall.cli.answer('-', null, function(data){
        //log(data.message);
        alert(data.cdr_uuid);
    });
}


//当前日期
function getNowFormatDate() {
  var date = new Date();
  var seperator1 = "-";
  var seperator2 = ":";
  var month = date.getMonth() + 1;
  var strDate = date.getDate();
  if (month >= 1 && month <= 9) {
    month = "0" + month;
  }
  if (strDate >= 0 && strDate <= 9) {
    strDate = "0" + strDate;
  }
  var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
    + " " + date.getHours() + seperator2 + date.getMinutes()
    + seperator2 + date.getSeconds();
  return currentdate;
};